﻿using System;
using System.IO;
namespace Excerise;

public class Program
{
    public static async System.Threading.Tasks.Task Main(string[] args)
    {
        // 十五、异步编程练习题
        // 异步读取文件内容
        // 编写一个异步方法，读取指定路径下的文本文件内容，并将其输出到控制台。要求使用File.ReadAllTextAsync方法实现异步读取。
        try
        {
            string content = await File.ReadAllTextAsync("a.txt");
            Console.WriteLine(content);
        }
        catch (Exception e)
        {
            Console.WriteLine($"读取文件时出错: {e.Message}");
        }

        // 异步调用Web API
        // 编写一个异步方法，调用一个Web API接口（例如：https://jsonplaceholder.typicode.com/posts），
        // 获取返回的JSON数据，并将其解析为对象列表，输出对象的某些属性值。
        // 要求使用HttpClient的GetAsync和ReadAsStringAsync方法实现异步调用。
        // 异步任务并行执行

        // 编写一个方法，同时启动多个异步任务，分别执行不同的操作（例如：异步读取文件内容、异步调用Web API等），等待所有任务完成后，输出每个任务的执行结果。要求使用Task.WhenAll方法实现任务并行执行。

        // 异步数据处理
        // 编写一个异步方法，从数据库中异步查询一组数据（例如：用户信息），对查询结果进行处理（例如：计算平均年龄），并将处理结果输出到控制台。要求使用ToListAsync（假设使用Entity Framework）或其他异步查询方法。


        // 异步文件写入
        // 编写一个异步方法，将一段文本内容异步写入到指定路径下的文件中。要求使用File.WriteAllTextAsync方法实现异步写入。
        try
        {
            File.WriteAllTextAsync("aaa", "这是内容");
        }
        catch (Exception e)
        {
            System.Console.WriteLine(e);
        }
    }
}
